This invention relates to an object management system dealing with objects in which data and procedure are capsulized, and particularly to an object management system which is intended to speed up the allocation and access of objects in consideration of the manner of object storing and management of the real memory space.
The object-oriented management system in which data and procedure are integrated as capsulized objects has been introduced in recent computer technology. Particularly, for object-oriented database systems in which objects are used continually and permanently, it is indispensable to have an object management function.
An object includes data of arbitrary length and a procedure of arbitrary length, and therefore the object management needs to have a function of managing memory areas of variable size. When the entire memory space has been used as resources through the sequential allotment, it becomes necessary to collect unused areas to thereby provide a memory area as another resource. This operation is called "garbage collection".
Among methods of garbage collection, the Mark & Sweep method marks active objects and collect unused areas by sweeping in the entire memory space. The Copy method divides the memory space into two regions and copy active objects to one region. The Generation-Scavenging method, which is a derivative of the Copy method, collects information having a long expected life into the same region so that it is excluded from the garbage collection process. A conventional garbage collection technique based on the Mark & Sweep method is described in an article entitled "Real-time garbage collection in a general-purpose computer" of publication Science, pp. 56-71, published in September 1988 by Nikkei Science Corp. Another conventional garbage collection technique based on the Generation-Scavenging method is described in an article entitled "Generation scavenging: A non-disruptive high performance storage reclamation algorithm" written by Unger, D., in the ACM Symposium on practical software environments", pp. 157-167.
However, if the number of active objects increases, areas used for these objects will not be available through the garbage collection process, resulting in a system down. In this case, some areas are saved to a secondary storage temporarily The area management including the secondary storage is realized in the virtual memory management technique of operating systems, and the paging method is the one frequently used in recent years. In this method, the memory space is divided into pages, and when the remaining area becomes insufficient, the contents of a page area is moved to a file. This file is called "Swap file", and the transfer to and from the swap file is called "Swap in" and "Swap out". The LRU (least recently used) method is used frequently for selecting a page to be swapped out. This method is to swap out a page which has not been accessed for the longest time. The paging method is described in the publication entitled "Introduction to operating system", pp. 212-217, published by Nihon Noritsu Kyokai.
A relational database is a typical database system capable of dealing with a group of data in the form of a table, with each column of the table being treated as a record. The paging method is used for the memory management of the relational database, and each page contains a group of records (subset of table). A record is converted into a form of a page and is then accessed. A new page is made available by swapping out an unused page based on the above-mentioned LRU method. The pagewise storing technique of the relational database is described in the publication entitled "An introduction to database systems" (4th edition), pp. 47-58 written by C. J. Date and A. Wesley in 1986.
The foregoing conventional techniques do not involve the concept of precluding objects, which are used during the execution of procedures, from the garbage collection and page swap processes. In the conventional techniques, an object is accessed based on the logical address of the virtual memory system and information resulting from the mapping of the logical address to the physical address of the real memory and to the access information for the secondary storage. Although this access method is advantageous in carrying out the garbage collection and page swap processes of the real memory space by merely changing the mapping information instead of changing the logical address, the system halts during the period when the mapping information is changed. Particularly, an object executing procedure needs to fetch and execute commands cyclically, and the implementation of garbage collection and page swapping results adversely in a degraded throughput of the procedure execution of the object.